package main

// 泛型类型
type Mymap[KEY int | string, VALUE float32 | float64] map[KEY]VALUE

type Man struct {
}
type Woman struct {
}
type Company[T Man | Woman] struct {
	mame string
	CEO  T
}

// 泛型嵌套
type Mystruct[T string | int, S []T] struct {
	A T
	B S
}

// 错误用法1，类型参数不能单独使用
// type CommonType[T int|string] T
type CommonType1[T int | string] []T

// 错误用法2，类型参数不能单独使用
// type CommonType[T *int|string] []T
type CommonType2[T interface{ *int } | string] []T

func main() {
	//m := Mymap[int, float32]{}

	//错误用法3，匿名结构体/方法 都不支持泛型
	//test:= struct[T string] {
	//}{}
}
